Scrolling is a well-known feature of graphical user interfaces. When the size of a document being displayed in an on-screen window exceeds the size of the window, scrolling allows a user to control which portion of the document is shown at any given time. Typical user interface elements for controlling scrolling operations include horizontal and vertical scroll bars, scroll “thumb” widgets that move within the scroll bars to indicate the current position of the viewable area within the overall document, and arrow buttons for incrementally shifting the viewable area by some predetermined amount (such as line-by-line, or page-by-page). The user can shift the position of the viewable area in any of a number of different ways. The user can drag a thumb widget to any position within its scroll bar to shift the viewable area to a location corresponding to the new widget position. The user can also click within a scroll bar at a location other than the current thumb widget position to shift the viewable area by some predetermined amount (such as by page). Or the user can click on arrow buttons to shift the viewable area by some smaller predetermined amount (such as by line). If the user has a mouse that includes a scroll wheel, the user can turn the wheel to scroll on a line-by-line basis as well. Keyboard control may also be provided. Other techniques are also known in the art for causing the scroll position to change.
In some cases, scroll bars are provided for scrolling in two dimensions—a horizontal scroll bar and a vertical scroll bar. In other cases, only one dimension of scrolling is needed, and only one scroll bar is provided.
One example of a software application that makes use of scroll bars is a web browser. Usually, the size of a web page being displayed in a browser window exceeds the size of the window itself. Most browser applications display vertical and/or horizontal scroll bars in order to allow a user to position the window within the larger web page. An example of a conventional scroll bar arrangement in a browser is shown in FIGS. 1A and 1B. Scroll bar 101 controls the scroll position of web page 103 within window 100. Scroll thumb 102 indicates, by its position within scroll bar 101, the current scroll position of web page 103. The user can move scroll thumb 102 up or down by dragging it, or by clicking on an area of scroll bar 101 above or below scroll thumb 102, or by clicking on arrow buttons 104. As in many conventional user interfaces, scroll thumb 102 varies in size according to the percentage of web page 103 that is visible in window 100. FIG. 1A shows window 100 where the scroll position reveals the top of web page 103, while FIG. 1B shows window 100 where the scroll position reveals the bottom of the same web page 103.
For purposes of this description, the term “panel” is used to refer to any portion of a document, such as a web page, that is logically, visually, or structurally separable from other portions of the document. Examples of panels include columns, rows, frames, cells, and the like, as shown in FIGS. 2, 3A, 3B, 3C, and 3D. Panels can be delineated by visible boundaries or they may not be so delineated. For purposes of this description, the word “document” is used; however, one skilled in the art will recognize that the techniques of the present invention can be applied to any on-screen display wherein one or more scroll bars are used to control which part of a displayable region is currently shown on the screen. For example, the present invention can be used for scrolling in a display of on-screen icons in a program or operating system function for viewing and manipulating files.
Some documents include multiple panels, or regions, containing different types of information. For example a web page may include a plurality of frames, or table cells, or columns, each containing text and/or other data. A document in a word processing application or spreadsheet application may include a plurality of columns. Generally, such situations are handled in one of two ways: either a separate scroll bar is provided for each panel, or a single scroll bar is provided, which causes all panels to be shifted in concert with one another. FIG. 2 shows an example of a prior art system where a web page 103 including multiple panels (frames) 201A, 201B is being displayed, with separate scroll bars 101A, 101B (including thumbs 102A, 102B and arrow buttons 104A, 104B) for each frame 201A, 201B.
FIGS. 3A, 3B, 3C, and 3D show an example where a single scroll bar 101 controls the scroll position of multiple panels 201A, 201B, 201C; the multiple panels 201A, 201B, 201C scroll in lock-step with one another.
In cases where one panel has more information than another, either of these techniques may be deficient. The use of separate scroll bars for each panel is cumbersome, as it requires the user to manually scroll each panel separately. The lock-step approach simplifies the scrolling operation; but in situations where one panel contains more data than another, the panel containing the lesser amount of data is not used effectively, since it remains blank after the end of the data has been reached, while the panel containing the greater amount of data continues to scroll.
For example, in FIG. 3B the user has scrolled part-way down, so that the scroll position is at the end of the data in panel 201A (although additional data exists in panel 201B). As the user continues to scroll, the additional data in panel 201B is shown, but panels 201A and 201C are left blank. FIG. 3C shows the window position when the user is near the end of the data in panel 201B; panels 201A and 201C are blank and constitute wasted space.